/**
 * 我们将通过做出一些通常适用于现代架构的合理假设来采取简化的观点：
 *   一个字节是8位。
 *   内存是按字节寻址的，因此最小的对象是 1 个字节。
 *   浮点支持符合 IEEE-754 标准。
 *   我们采用 32 位或 64 位架构。
 * 
 * sizeof不包括对象使用的动态分配的内存。我们将在以后的课程中讨论动态内存分配。
 * 
 */

#include <iomanip> // for std::setw (which sets the width of the subsequent output)
#include <iostream>

int main()
{
    std::cout << std::left; // left justify output
    std::cout << std::setw(16) << "bool:" << sizeof(bool) << " bytes\n";
    std::cout << std::setw(16) << "char:" << sizeof(char) << " bytes\n";
    std::cout << std::setw(16) << "short:" << sizeof(short) << " bytes\n";
    std::cout << std::setw(16) << "int:" << sizeof(int) << " bytes\n";
    std::cout << std::setw(16) << "long:" << sizeof(long) << " bytes\n";
    std::cout << std::setw(16) << "long long:" << sizeof(long long) << " bytes\n";
    std::cout << std::setw(16) << "float:" << sizeof(float) << " bytes\n";
    std::cout << std::setw(16) << "double:" << sizeof(double) << " bytes\n";
    std::cout << std::setw(16) << "long double:" << sizeof(long double) << " bytes\n";

    return 0;
}